package entity

import (
	"errors"
	"fmt"
	"shqsoft.cn/pasnj/base"
	"time"

	"github.com/jinzhu/gorm"
	//log "github.com/sirupsen/logrus"
)

//认定截止日设置
type Rdjzr struct {
	ID    int       `gorm:"AUTO_INCREMENT;primary_key;column:ID"`
	YEAR  string    `gorm:"column:YEAR"`
	MONTH string    `gorm:"column:MONTH"`
	DATE  time.Time `gorm:"column:DATE"`
}

//TableName Role 认定截止日设置
func (Rdjzr) TableName() string {
	return "T_BASE_DIVI_DATE"
}

//BeforeCreate 插入前的触发器
func (u *Rdjzr) BeforeCreate(tx *gorm.DB) (err error) {
	var count int
	err = tx.Model(Rdjzr{}).Where("YEAR=? and MONTH=?", u.YEAR, u.MONTH).Count(&count).Error
	if err != nil {
		return err
	}
	if count > 0 {
		info := fmt.Sprintf("该月截止日%s%s已存在，请修改！", u.YEAR, u.MONTH)
		return errors.New(info)
	}

	return
}

//BeforeUpdate 更新前的触发器
// func (u *Rdjzr) BeforeUpdate(tx *gorm.DB) (err error) {
// 	var count int
// 	err = tx.Model(Rdjzr{}).Where("YEAR=? and MONTH=?", u.YEAR, u.MONTH).Count(&count).Error
// 	if err != nil {
// 		return err
// 	}
// 	if count > 0 {
// 		info := fmt.Sprintf("该月截止日%s%s已存在，请修改！", u.YEAR, u.MONTH)
// 		return errors.New(info)
// 	}

// 	return
// }

func RdjzrEF() base.EntityFunc {
	return func() interface{} {
		entity := Rdjzr{}
		return &entity
	}
}
func RdjzrESF() base.EntitiesFunc {
	return func() interface{} {
		var entities []Rdjzr
		return &entities
	}
}

func init() {
	base.DaoPoolObj.Put("Rdjzr", base.NewDefaultDao(RdjzrEF(), RdjzrESF(), nil))
}
